iT邦幫忙

2021 iThome 鐵人賽

DAY 16
0

首先先寫測試

我們昨天測試了首頁,
那我們今天要開始做新的設計,
並且針對我們的設計來做測試,
我們即將要做一個登入的畫面,

這個登入的畫面會有一個"關於我們"的超連結,
點擊之後會跳到"關於我們"的頁面,
我們現在先寫一個測試

public function test_login_page_about()
{
    $this->visit('/home/index')
        ->click('關於我們')
        ->seePageIs('/home/about');
}

這意思是說我們點擊"關於我們"這個超連結,
然後預期會跳到/home/about這個頁面。

另外我們還要做登入的功能,
我們輸入帳號跟密碼,
並且勾選checkbox,
然後點擊"登入"這個按鈕,
預期他會跳到/home/main這個頁面

public function test_login_page_login()
{
    $this->visit('/home/index')
        ->type('admin', 'account')
        ->type('admin', 'password')
        ->check('terms')
        ->press('登入')
        ->seePageIs('/home/main');
}

方法的說明如下

方法 說明
$this->type($text, $elementName) 「輸入」文字在一個給定的區域
$this->select($value, $elementName) 「選擇」一個單選欄或下拉式選單的區域
$this->check($elementName) 「勾選」一個複選欄的區域
$this->attach($pathToFile, $elementName) 「附上」一個檔案至表單
$this->press($buttonTextOrElementName) 「按下」一個指定文字或名稱的按鈕

後來有發現兩個指令,
會一次測試全部的檔案,
不需要指定要測試哪個檔案

其中一個是
php vendor/phpunit/phpunit/phpunit
https://ithelp.ithome.com.tw/upload/images/20210917/20105694sDJfR0ljLv.png

可以看到發生了兩個錯誤,
兩個頁面都是回傳404,
因為我們還沒有開始做頁面,
這個部分我們明天會開始動作。

另外一個方法是
php artisan test
https://ithelp.ithome.com.tw/upload/images/20210917/20105694WhJ9obtcYF.png

會有一個測試的列表,
然後會告訴你錯誤在哪個函式,
然後會告訴你錯誤在哪一行,
(但是回傳的錯誤都是在套件裡面,
所以沒甚麼參考價值)

這兩種方法都可以使用,
可以選擇一種方法,
也可以兩種方法交互使用。


上一篇
[Day 15] 針對網頁的單元測試(一)
下一篇
[Day 17] 針對網頁的單元測試(三)
系列文
當拉拉肉遇到單元測試,是否能夠擦出命運的火花?31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言